local mowei = fk.CreateSkill{
    name = "wk_heg__mowei",
    tags = { Skill.Compulsory },
}

Fk:loadTranslationTable{
  ["wk_heg__mowei"] = "默威",
  [":wk_heg__mowei"] = "锁定技，当你受到伤害时，若你于此回合内使用过牌，此伤害-1；当你使用牌指定目标后，你令此牌不能被所有此回合获得过牌的角色响应。",

  ["$wk_heg__mowei1"] = "秉公守一，不负圣恩！",
  ["$wk_heg__mowei2"] = "秉直进谏，勿藏私心！",
}

mowei:addEffect(fk.TargetSpecified,{
  anim_type = "control",
  can_trigger = function (self, event, target, player, data)
    local room = player.room
    if not (player:hasSkill(mowei.name) and target == player) then return false end
      room.logic:getEventsOfScope(GameEvent.MoveCards, 1, function(e)
        for _, move in ipairs(e.data) do
          if move.toArea == Card.PlayerHand and move.to then
            local to = move.to
            if to and to:getMark("_wk_heg__mowei_record-turn") == 0 then
              for _, info in ipairs(move.moveInfo) do
                if to:getMark("_wk_heg__mowei_record-turn") == 0 then
                  room:setPlayerMark(to, "_wk_heg__mowei_record-turn", 1)
                end
              end
            end
          end
        end
        return false
      end, Player.HistoryTurn)
    return true
  end,
  on_use = function (self, event, target, player, data)
    local room = player.room
    local targets = table.filter(room.alive_players, function(p) return p:getMark("_wk_heg__mowei_record-turn") ~= 0 end)
    if #targets > 0 then
      data.use.disresponsiveList = data.use.disresponsiveList or {}
      for _, p in ipairs(targets) do
        table.insertIfNeed(data.use.disresponsiveList, p)
      end
    end
  end,
})

mowei:addEffect(fk.DamageInflicted,{
  anim_type = "control",
  can_trigger = function (self, event, target, player, data)
    local room = player.room
    if not (player:hasSkill(mowei.name) and target == player) then return false end
    local events = room.logic:getEventsOfScope(GameEvent.UseCard, 1, function(e)
      local use = e.data
      return use.from == player
    end, Player.HistoryTurn)
    return #events > 0
  end,
  on_use = function (self, event, target, player, data)
    data:changeDamage(-1)
  end,
})



return mowei